package persistencia.dao;

import org.hibernate.Query;
import persistencia.hbt.HibernateUtil;
import bean.DescuentoPorCantidad;
import bean.EntidadPersistente;

public class DescuentoPorCantidadDAO extends EntidadPersistenteDAO {
	private static DescuentoPorCantidadDAO instancia = null;
	
	public static DescuentoPorCantidadDAO getInstancia(){
		if(instancia == null)
			instancia = new DescuentoPorCantidadDAO();
		
		if (session == null)
			session = HibernateUtil.getSession();
		
		return instancia;
	}
	
	public DescuentoPorCantidad buscar(EntidadPersistente entidad)
	{
		DescuentoPorCantidad dpc = (DescuentoPorCantidad) entidad;
		
		if (dpc.getId() != null)
			return (DescuentoPorCantidad) super.buscar(dpc);
		else if (dpc.getCantidadMinima() != 0)
			return this.buscar(dpc.getCantidadMinima());
		
		return null;
	}
	
	private DescuentoPorCantidad buscar(int cantidadMinima){
		Query query = session.createQuery("from DescuentoPorCantidad dpc where dpc.cantidadMinima = :var");
		query.setInteger("var", cantidadMinima);
		DescuentoPorCantidad dpc = (DescuentoPorCantidad) query.setFirstResult(0).setMaxResults(1).uniqueResult();
		return dpc;
	}
}
